/*
 * Copyright (c) 2006-2020, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2020-12-14     Ghazigq     the first version
 */

#ifndef __GBK2UTF8_H__
#define __GBK2UTF8_H__

#include "stdlib.h"
#include "stdio.h"
//#ifdef PKG_USING_GBK2UTF8

    /*设置数组大小*/
   // #undef  ARRAY_SIZE_A
    #define ARRAY_SIZE_A(x)       ( ( sizeof(x) ) /(sizeof( (x[0]) ) ))

    /***********************************************************
    * 函数名称：gbkk2utf8
    * 功能描述：将 gbk转为 utf8
    * 输入参数：pin_buf 输入缓冲区
    *       in_len  输入长度
    * 输出参数：ptr 成功后的起始位置(malloc产生),(数据末尾加上'0')
    * 返 回 值：  转换后的长度, < 0 失败,其它成功
    ***********************************************************/
int gbk2utf8(char *ptr, void *pin_buf, int in_len);


    /***********************************************************
    * 函数名称：gbkk2utf8
    * 功能描述：将 gbk转为 utf8
    * 输入参数：pin_buf 输入缓冲区
    *       in_len  输入长度
    * 输出参数：ptr 成功后的起始位置(malloc产生),(数据末尾加上'0')
    * 返 回 值：  转换后的长度, < 0 失败,其它成功
    ***********************************************************/
int utf82gbk(char *ptr, void *pin_buf, int in_len);
/***************************************************************
 * 需要说明的是，isGBK()是通过双字节是否落在gbk的编码范围内实现的，
 * 而utf-8编码格式的每个字节都是落在gbk的编码范围内??
 * 所以只有先调用isUtf8()先判断不是utf-8编码，再调用isGBK()才有意义
*****************************************************************/
unsigned char GetCoding(unsigned char* data, unsigned int len);


//#endif /* PKG_USING_GBK2UTF8 */

#endif /* __GBK2UTF8_H__ */
